/*
 * libThreads.h
 *
 *  Created on: 25/03/2012
 *      Author: utnso
 */

#ifndef LIBTHREADS_H_
#define LIBTHREADS_H_

//INCLUDES

#include <pthread.h>
#include <stdlib.h>
#include <pthread.h>

//TIPOS

typedef struct t_nodoThread{
	pthread_t tid;
	struct t_nodoThread* sig;
} __attribute__((packed)) t_nodoThread;

//FUNCIONES

void apilarThread(t_nodoThread**, pthread_t);
/*Este proceso ingresa los datos de un thread a una pila de
 * threads.
 * ------------------------------------------------------------
 * Recibe un puntero a una pila de threads y la informacion del
 * thread a apilar.
 */

void desapilarThread(t_nodoThread**, pthread_t*);
/*Este proceso obtiene los datos del primer elemento de una
 * pila de threads, eliminando el nodo correspondiente.
 * ------------------------------------------------------------
 * Recibe un puntero a una pila de threads y un puntero donde
 * guardar la informacion del thread correspondiente.
 */

void esperarThreads(t_nodoThread**);
/*Esta funcion espera la finalizacion de la ejecucion de todos
 * los threads incluidos en una pila de threads.
 * ------------------------------------------------------------
 * Recibe un puntero a una pila de threads.
 */

#endif /* LIBTHREADS_H_ */
